/*
 * Function.h
 *
 *  Created on: 2011/06/22
 *      Author: naoki
 */

#ifndef INCLUDED_NTENGINE_MATH_FUNCTION_H
#define INCLUDED_NTENGINE_MATH_FUNCTION_H

namespace NTEngine {

/**
 * @brief Mathモジュール
 */
namespace Math {

extern const float PI; /// π
extern const float PI2; /// 2π

/**
 * 度からラジアンへ変換
 */
float toRadian( float deg );

/**
 * @brief ラジアンから度へ変換
 */
float toDegrees( float rad );

/**
 * @brief 三角関数
 */
float sin( float );

/**
 * @brief cos
 */
float cos( float );

/**
 * @brief tan
 */
float tan( float );

/**
 * @brief 逆三角関数
 */
float asin( float );

/**
 * @brief acos
 */
float acos( float );

/**
 * @brief atan
 */
float atan( float );

/**
 * @brief atan2
 */
float atan2( float y, float x );

/**
 * @brief 累乗(aのb乗)
 */
float pow( float a, float b );

/**
 * @brief 絶対値
 */
float abs( float );

/**
 * @brief 最小
 */
float min( float a, float b );

/**
 * @brief 最大
 */
float max( float a, float b );

/**
 * @brief 平方根
 */
float sqrt( float );

/**
 * @brief
 */
float fabs( float );

} // namespace Math
} // namespace NTEngine

#endif // INCLUDED_NTENGINE_MATH_FUNCTION_H
